R-এ HTML Parsing এবং Data Extraction
HTML Parsing এবং Data Extraction হল টেক্সট ডেটা বা ওয়েব পেজ থেকে প্রয়োজনীয় তথ্য সংগ্রহের প্রক্রিয়া। ওয়েব স্ক্র্যাপিং হল এই প্রক্রিয়াটি সম্পাদন করার জন্য ব্যবহৃত একটি পদ্ধতি, যেখানে HTML ডকুমেন্টের ভিতরে থাকা ডেটাকে পড়া এবং বিশ্লেষণ করা হয়। R-এ ওয়েব স্ক্র্যাপিং এবং HTML Parsing এর জন্য কিছু শক্তিশালী প্যাকেজ রয়েছে যেমন rvest, xml, এবং httr।
১. HTML Parsing with rvest package
rvest প্যাকেজটি ওয়েব পেজ থেকে তথ্য বের করার জন্য একটি খুবই জনপ্রিয় টুল। এটি HTML এবং XML ডকুমেন্টগুলি থেকে ডেটা সংগ্রহ করতে সাহায্য করে। এটি CSS selectors বা XPath ব্যবহার করে নির্দিষ্ট এলিমেন্টগুলি নির্বাচন করে।
Steps to Perform HTML Parsing:
- ওয়েব পেজ থেকে HTML ডেটা পড়া।
- ডেটা থেকে প্রাসঙ্গিক তথ্য বের করা (যেমন টেক্সট, লিঙ্ক, ছবি, টেবিল ইত্যাদি)।
- সংগ্রহ করা ডেটা প্রক্রিয়াকরণ।
উদাহরণ: HTML Parsing with rvest
# rvest প্যাকেজ ইনস্টল এবং লোড করা
install.packages("rvest")
library(rvest)
# ওয়েব পেজ থেকে HTML ডেটা সংগ্রহ করা
url <- "https://www.imdb.com/chart/top"
web_page <- read_html(url)
# টপ 10 সিনেমার নাম সংগ্রহ করা
movies <- web_page %>%
html_nodes(".titleColumn a") %>%
html_text()
# টপ 10 সিনেমার নাম প্রিন্ট করা
print(movies)ব্যাখ্যা:
read_html()ফাংশনটি ওয়েব পেজের HTML ডকুমেন্ট পাঠায়।html_nodes()ফাংশনটি CSS সিলেক্টর ব্যবহার করে HTML এলিমেন্টগুলি চিহ্নিত করে, যেমন এখানে.titleColumn a।html_text()ফাংশনটি নির্বাচিত এলিমেন্টের টেক্সট ডেটা বের করে।
২. Data Extraction from Tables
HTML টেবিল থেকে ডেটা এক্সট্র্যাক্ট করতে rvest প্যাকেজটি খুবই কার্যকরী। আমরা HTML টেবিলের সেলগুলি নির্বাচন করে প্রয়োজনীয় ডেটা বের করতে পারি।
উদাহরণ: HTML Table থেকে Data Extraction
# টেবিলের ডেটা সংগ্রহ করা
url <- "https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_and_their_capitals_in_native_languages"
web_page <- read_html(url)
# টেবিল ডেটা সংগ্রহ করা
tables <- web_page %>%
html_nodes("table") %>%
html_table(fill = TRUE)
# প্রথম টেবিলের কিছু ডেটা দেখানো
print(tables[[1]])ব্যাখ্যা:
html_nodes("table")ফাংশনটি HTML পেজের সব টেবিল নির্বাচন করে।html_table(fill = TRUE)ফাংশনটি টেবিলের ডেটাকে R ডেটাফ্রেমে রূপান্তরিত করে।tables[[1]]দিয়ে প্রথম টেবিলের ডেটা দেখা হয়।
৩. Extracting Links (Hyperlinks) from HTML
ওয়েব পেজ থেকে লিঙ্ক (URLs) এক্সট্র্যাক্ট করা খুবই সহজ। এটি anchor (<a>) ট্যাগ ব্যবহার করে করা হয়।
উদাহরণ: HTML থেকে লিঙ্ক এক্সট্র্যাক্ট করা
# ওয়েব পেজ থেকে লিঙ্ক এক্সট্র্যাক্ট করা
url <- "https://www.wikipedia.org/"
web_page <- read_html(url)
# সমস্ত লিঙ্ক সংগ্রহ করা
links <- web_page %>%
html_nodes("a") %>%
html_attr("href")
# কিছু লিঙ্ক দেখানো
print(head(links))ব্যাখ্যা:
html_nodes("a")ফাংশনটি সমস্ত anchor (<a>) ট্যাগ নির্বাচন করে।html_attr("href")ফাংশনটি প্রতিটি লিঙ্কেরhrefঅ্যাট্রিবিউট থেকে ইউআরএল সংগ্রহ করে।
৪. Handling Dynamic Content with httr and RSelenium
অনেক ওয়েবসাইটে ডাইনামিক কনটেন্ট থাকে, যা শুধুমাত্র ক্লিক বা স্ক্রল করার মাধ্যমে লোড হয়। এরকম কনটেন্ট এক্সট্র্যাক্ট করতে httr এবং RSelenium প্যাকেজ ব্যবহার করা হয়। এই প্যাকেজগুলি ওয়েব পেজের সেশন ম্যানেজমেন্ট এবং ডাইনামিক কনটেন্ট লোডিংয়ের ক্ষেত্রে সহায়তা করে।
উদাহরণ: Using httr to make HTTP requests
# httr প্যাকেজ লোড করা
library(httr)
# HTTP GET রিকোয়েস্ট পাঠানো
response <- GET("https://www.wikipedia.org/")
# রেসপন্স দেখানো
print(content(response, "text"))উদাহরণ: Using RSelenium for Dynamic Content
# RSelenium প্যাকেজ লোড করা
library(RSelenium)
# রিমোট ড্রাইভার চালু করা
driver <- rsDriver(browser = "firefox", port = 4444)
remote_driver <- driver[["client"]]
# ওয়েব পেজ খুলা
remote_driver$navigate("https://www.wikipedia.org/")
# ডাইনামিক কনটেন্ট সংগ্রহ করা
page_source <- remote_driver$getPageSource()
# পেজ সোর্স প্রিন্ট করা
print(page_source)ব্যাখ্যা:
httrব্যবহার করে সাধারণ HTTP রিকোয়েস্ট পাঠানো হয় এবং ওয়েব পেজের সোর্স কোড পাওয়া যায়।RSeleniumব্যবহার করে ব্রাউজার সেশন চালু করা হয় এবং ডাইনামিক কনটেন্ট লোড করা হয়।
সারসংক্ষেপ
- HTML Parsing হল ওয়েব পেজ থেকে ডেটা সংগ্রহ করার প্রক্রিয়া। R-এ
rvestপ্যাকেজটি জনপ্রিয় টুল যা HTML ডকুমেন্ট থেকে টেক্সট, টেবিল, লিঙ্ক ইত্যাদি বের করতে ব্যবহৃত হয়। - Data Extraction হল HTML পেজের থেকে গুরুত্বপূর্ণ তথ্য চিহ্নিত এবং সংগ্রহ করা।
- ডাইনামিক ওয়েব পেজের কনটেন্ট এক্সট্র্যাক্ট করতে
httrএবংRSeleniumপ্যাকেজগুলি ব্যবহৃত হয়।
এই পদ্ধতিগুলি ব্যবহার করে আপনি ওয়েব পেজ থেকে প্রয়োজনীয় তথ্য সংগ্রহ এবং বিশ্লেষণ করতে পারবেন।
Read more